Sensors are used in a plurality of different types of systems in connection with operating a system and/or collecting data and/or correlating data. For instance, in an industrial automation environment, sensors are often used to sense particular conditions and a device or system is operated responsive to the sensor sensing the condition. In another example, in a system configured to detect or predict weather conditions, sensed air pressure measurements may be desirably correlated with wind speed measurements and temperature measurements captured at particular points in time. Thus, in certain systems or environments, it may be desirable to correlate various sensed values with respect to time.
Oftentimes, however, sensors are equipped with their own internal clock mechanism and are not conducive to operate in connection with a central timing device. For relatively inexpensive sensors, these internal clocks may be somewhat imprecise. For instance, two sensors may be configured to operate at approximately 10 Hz. Over time, however, clock values output by the sensors may drift, rendering it difficult to correlate captured data from the sensors with respect to time. Synchronizing data from multiple sensors becomes even more complex when sensors with different sampling frequencies are introduced and when sensors that do not produce data at regular intervals are introduced to a sensor system.
One manner for causing data from multiple sensors with different time bases to correspond to a common time base is to use a mechanism that can receive all sensor data in real time and provide timestamps to sensor data as it is received. Devices that can perform such functions, however, are typically relatively expensive. In addition, this would require a particular system architecture, which may not be desirable for certain applications. Furthermore, a consumer level device such as a personal computer may not be able to timestamp sensor data with sufficient accuracy for certain applications of the sensor data. For instance, if data is recorded by software on a personal computer by way of a serial interface, delays on the interface, the personal computer internal architecture, and/or the operating system may occur which can be random and can range as high as two seconds or more. Accordingly, if an error tolerance is below two seconds, such software on the personal computer is insufficient for assigning a common time base to data from multiple sensors.